module.exports = (app) => {
  const { config } = app
  const { dict, constant } = config
  const { ORDER_STATE_AWAIT_PAY } = constant
  const { Schema, model, getModelName, formatDate } = app.jax.mongoose
  const modelName = getModelName(__filename)

  const schema = new Schema({
    adminId: Schema.Types.ObjectId, // 管理员ID
    cdk: String, // 序列号
    game: String, // 游戏
    type: { type: Number, default: 0 }, // 类型
    state: { type: Number, default: 0 }, // CDK状态 0、未使用  1、已使用
    useTime: { type: Date, get: (date) => formatDate(date) }, // 使用时间
    // cost: { type: Number, default: 0 }, // 费用
  })

  schema.virtual('typeDesc').get(function () {
    // { label: '战区订单', value: 0 },
    // { label: '单英雄查改订单', value: 1 },
    // { label: '全英雄查改订单', value: 2 },
    // { label: '单英雄查询', value: 3 },
    // { label: '全英雄查询', value: 3 },
    const data = {
      0: '战区订单',
      1: '单英雄查改订单',
      2: '全英雄查改订单',
      3: '单英雄查询',
      4: '全英雄查询',
    }

    return data[this.state] || '未知'
  })

  schema.virtual('stateDesc').get(function () {
    const data = {
      0: '未使用',
      1: '已使用',
    }

    return data[this.state] || '未知'
  })

  schema.virtual('h5').get(function () {
    return config.h5 + '/order/create?cdk=' + this.cdk
  })

  const Model = model(modelName, schema)

  return Model
}
